Canigó - Servei de Fitxers
SERVEI DE FITXERS
IntroduccióPropósitEl Servei de Fitxers té com a objectiu principal oferir la possibilitat de gestió i accés a fitxers. Les seves característiques es troben diferenciades en:
Context i Escenaris d'ÚsEl Servei de Fitxers es troba dins dels serveis d'integració de canigo.
Versions i DependènciesLes dependències descrites a la següent url son requerides per tal de compilar i fer funcionar el projecte: A qui va dirigitAquest document va dirigit als següents perfils:
Documents i Fonts de Referència
GlossariCommons IO Llibreria de Jakarta en Java que permet la interacció amb fitxers Descripció DetalladaArquitectura i Componentscanigo ofereix una arquitectura de gestió de fitxers deslligada de la implementació. Actualment, i a causa del seu grau de facilitat canigo es basa en la llibreria del projecte Jakarta Commons IO. No obstant s'han encapsulat els mètodes "static" de la classes utilitàries amb interfícies per a garantir l'estabilitat de l'API a llarg termini. Els components podem classificar-los en:
JavaDoc: http://canigo.ctti.gencat.net/confluence/canigodocs/site/canigo2_0/canigo-services-file/apidocs/index.html Instal- lació i ConfiguracióInstal- lacióLa instal- lació del servei requereix de la utilització de la llibreria 'canigo-services-file' i les dependències indicades a l'apartat 'Introducció-Versions i Dependències'. ConfiguracióFitxer de configuració: canigo-services-exceptions.xml Ubicació proposada: <PROJECT_ROOT>/src/main/resources/spring La configuració del Servei de Fitxers és força senzilla, doncs només cal definir els beans que farem servir com a implementacions. En l'actualitat implica la definició dels següents beans:
Exemple:
<beans> <bean id="fileSystemService" class="net.gencat.ctti.canigo.services.file.impl.commons.FileSystemServiceCommonsImpl" lazy-init="true" singleton="true"/> <bean id="fileNamingService" class="net.gencat.ctti.canigo.services.file.impl.commons.FileNamingServiceCommonsImpl" lazy-init="true" singleton="true"/> <bean id="ioService" class="net.gencat.ctti.canigo.services.file.impl.commons.IOServiceCommonsImpl" lazy-init="true" singleton="true"/> </beans> Utilització del ServeiLa utilització del Servei es basa en l´ús de les interfícies definides a l'apartat 'Arquitectura i Components'. Consultar l'apartat 'Exemples' per veure alguns exemples de tractament de fitxers amb la API proporcionada. ExemplesExemples d'Operacions de Manteniment de Directoris i FitxersCrear una nova carpeta
![]() File newFolder = new File("D:/WEBAPP/New Folder"); fileSystemService.forceMkdir(newFolder); Eliminar una carpeta
![]() fileSystemService.deleteDirectory(newFolder); Crear un fitxer
![]() Aquest comandament usa el constructor de java.io.File. File newFile = new File("D:/WEBAPP/New Folder/New Text Document.txt"); Eliminar un fitxer
![]() File file = new File("D:/WEBAPP/New Folder/New Text Document.txt"); fileSystemService.forceDelete(file); Copiar una carpeta
![]() File folder = new File("D:/WEBAPP/New Folder"); fileSystemService.copyDirectory(folder, new File("D:/WEBAPP/Destination")); Copiar un fitxer
![]() File sourceFile = new File("D:/WEBAPP/New Folder/New Text Document.txt"); fileSystemService.copyFileToDirectory(sourceFile, new File("D:/WEBAPP/Dest")); Llegir un fitxer
Exemple d'Obtenció d'Informació dels FitxersEn aquest exemple es pot observar cóm podem obtenir informació d'un fitxer.
File file = new File("D:/WEBAPP/New Folder/New Text Document.txt"); String prefix = fileNamingService.getPrefix(file.getPath()); // => D:/ String path= fileNamingService.getPath(file.getPath()); // => WEBAPP/New Folder/ String baseName = fileNamingService.getBaseName(file.getPath()); // => New Text Document String extension = fileNamingService.getExtension(file.getPath()); // => txt Exemple de Lectura del Contingut d'un RecursIOService conté mètodes utilitaris per a llegir, escriure i llegir amb fluxos de tipus InputStream, OutputStream, Reader i Writer. Per exemple, podríem llegir els bytes des d'una URL, i imprimir-los en la pantalla. Amb les classes de Java clàssiques del package java.io, el codi seria el següent:
InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { InputStreamReader inR = new InputStreamReader( in ); BufferedReader buf = new BufferedReader( inR ); String line; while ( ( line = buf.readLine() ) != null ) { System.out.println( line ); } } finally{ in.close(); } Mentre que amb l'ús del servei IOService, el codi serà:
InputStream in = new URL( "http://jakarta.apache.org" ).openStream(); try { System.out.println( ioService.toString( in ) ); } finally { IOUtils.closeQuietly(in); } Cóm veiem, hem guanyat en senzillesa. |